package com.cleaningcloud.cld.controller;

import com.cleaningcloud.cld.domain.FinanceReportBI;
import com.cleaningcloud.cld.domain.HumanResourcesBI;
import com.cleaningcloud.cld.service.IFinanceReportBIService;
import com.cleaningcloud.cld.service.IHumanResourcesBIService;
import com.cleaningcloud.common.core.web.controller.BaseController;
import com.cleaningcloud.common.core.web.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @className 人资履约BI控制类
 * @description //TODO
 * @author Shaw
 * @date: 2025-03-05 17:07
 * @param: //TODO
 */ 
@RestController
@RequestMapping("/humanBI")
public class HumanResourcesBIController extends BaseController {

    //BI业务接口
    @Autowired
    private IHumanResourcesBIService iHumanResourcesBIService;

    /**
     * @Author Shaw
     * @Description 项目岗位执勤占比图
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getProjectPostRate")
    public AjaxResult getProjectPostRate() {
        return success(iHumanResourcesBIService.getProjectPostRate());
    }

    /**
     * @Author Shaw
     * @Description 日工作计划完成占比图
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getSunWorkPlanSuccessRate")
    public AjaxResult getSunWorkPlanSuccessRate() {
        return success(iHumanResourcesBIService.getSunWorkPlanSuccessRate());
    }

    /**
     * @Author Shaw
     * @Description 专项工作计划完成占比图
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getSpecialWorkPlanSuccessRate")
    public AjaxResult getSpecialWorkPlanSuccessRate() {
        return success(iHumanResourcesBIService.getSpecialWorkPlanSuccessRate());
    }

    /**
     * @Author Shaw
     * @Description 投诉处置完成占比图
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getComplaintsSuccessRate")
    public AjaxResult getComplaintsSuccessRate() {
        return success(iHumanResourcesBIService.getComplaintsSuccessRate());
    }

    /**
     * @Author Shaw
     * @Description 培训计划完成占比图
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getTrainSuccessRate")
    public AjaxResult getTrainSuccessRate() {
        return success(iHumanResourcesBIService.getTrainSuccessRate());
    }

    /**
     * @Author Shaw
     * @Description 员工保险占比图
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getInsuranceRate")
    public AjaxResult getInsuranceRate() {
        return success(iHumanResourcesBIService.getInsuranceRate());
    }

    /**
     * @Author Shaw
     * @Description 按当月查询实际薪酬(日走势图)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthSalary")
    public AjaxResult getMonthSalary() {
        return success(iHumanResourcesBIService.getMonthSalary());
    }

    /**
     * @Author Shaw
     * @Description 按当月查询实际薪酬(表格)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthSalaryTable")
    public AjaxResult getMonthSalaryTable() {
        return success(iHumanResourcesBIService.getMonthSalaryTable());
    }

    /**
     * @Author Shaw
     * @Description 按项目查询薪酬明细
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthSalaryDetailsByProject")
    public AjaxResult getMonthSalaryDetailsByProject() {
        return success(iHumanResourcesBIService.getMonthSalaryDetailsByProject());
    }

    /**
     * @Author Shaw
     * @Description 按性别年龄查询人员在岗
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getStaffBySexAge")
    public AjaxResult getStaffBySexAge() {
        return success(iHumanResourcesBIService.getStaffBySexAge());
    }

    /**
     * @Author Shaw
     * @Description 按管理类型查询管理者占比
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getStaffManagerRate")
    public AjaxResult getStaffManagerRate() {
        return success(iHumanResourcesBIService.getStaffManagerRate());
    }

    /**
     * @Author Shaw
     * @Description 按区域查询管理者职别
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getStaffManagerTable")
    public AjaxResult getStaffManagerTable() {
        return success(iHumanResourcesBIService.getStaffManagerTable());
    }

    /**
     * @Author Shaw
     * @Description 按项目查询项目员工状态人数
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getStaffStatusByProject")
    public AjaxResult getStaffStatusByProject() {
        return success(iHumanResourcesBIService.getStaffStatusByProject());
    }

    /**
     * @Author Shaw
     * @Description 按当月查询日计划完成情况(日走势图)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthWorkPlan")
    public AjaxResult getMonthWorkPlan() {
        return success(iHumanResourcesBIService.getMonthWorkPlan());
    }

    /**
     * @Author Shaw
     * @Description 按当月查询日计划完成情况(表格)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthWorkPlanTable")
    public AjaxResult getMonthWorkPlanTable() {
        return success(iHumanResourcesBIService.getMonthWorkPlanTable());
    }

    /**
     * @Author Shaw
     * @Description 按当月查询日客诉处置情况(日走势图)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthComplaints")
    public AjaxResult getMonthComplaints() {
        return success(iHumanResourcesBIService.getMonthComplaints());
    }

    /**
     * @Author Shaw
     * @Description 按当月查询日客诉处置情况(表格)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthComplaintsTable")
    public AjaxResult getMonthComplaintsTable() {
        return success(iHumanResourcesBIService.getMonthComplaintsTable());
    }

    /**
     * @Author Shaw
     * @Description 按培训类型查询当月培训完成占比
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthTrainTypeRate")
    public AjaxResult getMonthTrainTypeRate() {
        return success(iHumanResourcesBIService.getMonthTrainTypeRate());
    }

    /**
     * @Author Shaw
     * @Description 按当月查询项目培训计划情况(表格)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getMonthTrainPlanTable")
    public AjaxResult getMonthTrainPlanTable() {
        return success(iHumanResourcesBIService.getMonthTrainPlanTable());
    }

    /**
     * @Author Shaw
     * @Description 按保险在保期中查询保单情况占比
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getStaffInsuranceRate")
    public AjaxResult getStaffInsuranceRate() {
        return success(iHumanResourcesBIService.getStaffInsuranceRate());
    }

    /**
     * @Author Shaw
     * @Description 按当月查询项目培训计划情况(表格)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getStaffInsuranceTable")
    public AjaxResult getStaffInsuranceTable() {
        return success(iHumanResourcesBIService.getStaffInsuranceTable());
    }
}
